Appearance
Vue 组件间的参数传递方式?
本节目标:理解“Vue 组件间的参数传递方式?”的核心思路,并能把它用于实际开发或面试表达。 ==父子组件间通信====== ==第一种方法是子组件通过 props 属性来接受父组件的数据,然后父组件在子组件上注册监听事件,子组件通过 emit 触发事件来向父组件发送数据。====== ==第二种是通过 ref 属性给子组件设置一个名字。父组件通过 $refs 组件名来获得子组件,子组件通过 $parent 获得父组件,这样也可以实现通信。====== ==第三种是使用 provider/inject,在父组件中通过 provider 提供变量,在子组件中通过 inject 来将变量注入到组件中。不论子组件有多深,只要调用了 inject 那么就可以注入 provider 中的数据。== ==(2)兄弟组件间通信====== ==== ==第一种是使用 eventBus 的方法,它的本质是通过创建一个空的 Vue 实例来作为消息传递的对象,通信的组件引入这个实例,通信的组件通过在这个实例上监听和触发事件,来实现消息的传递。== ==第二种是通过 $parent.$refs 来获取到兄弟组件,也可以进行通信。====== ==(3)任意组件之间====== ==使用 eventBus ,其实就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件。====== ==如果业务逻辑复杂,很多组件之间需要同时处理一些公共的数据,这个时候采用上面这一些方法可能不利于项目的维护。这个时候====== ==可以使用 vuex ,vuex 的思想就是将这一些公共的数据抽离出来,将它作为一个全局的变量来管理,然后其他组件就可以对这个====== ==公共数据进行读写操作,这样达到了解耦的目的。====== ==详细资料可以参考:== ==《VUE 组件之间数据传递全集》== > 来自 <https://github.com/CavsZhouyou/Front-End-Interview-Notebook/blob/master/JavaScript/JavaScript.md>
